package pe.gob.onpe.ejb;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * ActividadElectoral entity.
 * 
 * @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "ACTIVIDAD_ELECTORAL", schema = "SVENP", uniqueConstraints = {})
public class ActividadElectoral implements java.io.Serializable {

	// Fields
	private static final long serialVersionUID = 3251950889157116872L;
	private Long actividadElectoralId;
	private String nombre;
	private String descripcion;
	private Set<CronogramaElectoral> cronogramaElectorals = new HashSet<CronogramaElectoral>(0);

	// Constructors
	/** default constructor */
	public ActividadElectoral() {
	}

	/** minimal constructor */
	public ActividadElectoral(Long actividadElectoralId, String nombre) {
		this.actividadElectoralId = actividadElectoralId;
		this.nombre = nombre;
	}

	/** full constructor */
	public ActividadElectoral(Long actividadElectoralId, String nombre,
			String descripcion, Set<CronogramaElectoral> cronogramaElectorals) {
		this.actividadElectoralId = actividadElectoralId;
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.cronogramaElectorals = cronogramaElectorals;
	}

	// Property accessors
	@Id
	@Column(name = "ACTIVIDAD_ELECTORAL_ID", unique = true, nullable = false, insertable = true, updatable = true, precision = 10, scale = 0)
	public Long getActividadElectoralId() {
		return this.actividadElectoralId;
	}

	public void setActividadElectoralId(Long actividadElectoralId) {
		this.actividadElectoralId = actividadElectoralId;
	}

	@Column(name = "NOMBRE", unique = false, nullable = false, insertable = true, updatable = true)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "DESCRIPCION", unique = false, nullable = true, insertable = true, updatable = true)
	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "actividadElectoral")
	public Set<CronogramaElectoral> getCronogramaElectorals() {
		return this.cronogramaElectorals;
	}

	public void setCronogramaElectorals(
			Set<CronogramaElectoral> cronogramaElectorals) {
		this.cronogramaElectorals = cronogramaElectorals;
	}

}